Device management
Shared Manager
sharedManager
Provides access to the heftManager. The heft manager is used for discovering devices and creating a HeftClient with a connection to selected device.
Code example
//SharedManager
//Provides access to the heftManager
//Create an instance of the shared manager at set it's delegate
HeftManager* heftManager = [HeftManager sharedManager];
heftManager.delegate = self;
Returns
| Parameter | Notes |
|---|---|
| HeftManager | The heftManager instance |
Client for device (NSString)
clientForDevice
Creates a HeftClient object. If a connection is successful the HeftClient object is returned in the didConnect event. All transactions are done using the heftClient.
Parameters
| Parameter | Notes |
|---|---|
device Required NSInteger | The device to connect to. |
sharedSecret Required NSString | Shared secret only known by the merchant and Handpoint. |
aDelegate Required BOOL | The HeftStatusReportDelegate for the HeftClient to report to. |
Code example
//clientForDevice:sharedSecretString:delegate:
//Creates a HeftClient object(connection to device)
NSString* sharedSecret = @"0102030405060708091011121314151617181920212223242526272829303132";
-(void)connectToFirstCardReaderWith:(NSString*)sharedSecret;
{
//Try to connect to first device in devices array
[heftManager clientForDevice:[[heftManager devicesCopy] objectAtIndex:0] sharedSecretString:sharedSecret delegate:self];
//Client calls the didConnect delegate function if successful
}
Events invoked
Called when a connection to specified device was created.
Returns
| Parameter | Notes |
|---|---|
Boolean | YES if operation starts successfully |
Start Discovery
startDiscovery
Displays a list of available accessory devices in a modal window.
Code example
//startDiscovery
//Starts the BT discovery process
-(void)startDiscovery;
{
[heftManager startDiscovery];
//Start search activity indicator or other desired functions
}
Set log level
logSetLevel
Sets the log level of the card reader. There are for levels of logging for the device: none, info, full, debug. Setting the log level means that relevant information concerning the application operation will be stored.
Parameters
| Parameter | Notes |
|---|---|
level Required eLogLevel | eLogLevel available types: eLogNone, eLogInfo, eLogFull, eLogDebug |
Code example
//logSetLevel:
//Sets the log level of the card reader.
-(void)disableCardReaderLogs
{
[heftClient logSetLevel:eLogNone];
}
-(void)enableCardReaderDebugLogs
{
[heftClient logSetLevel:eLogDebug];
}
Returns
| Parameter | Notes |
|---|---|
Boolean | This method always returns YES |
Fetch logs
logGetInfo
Retrieves the logging info. Returns them in the responseLogInfo event.
Code example
//logGetInfo
//Retrieves the logging info.
-(void)getLogsFromCardReader
{
[heftClient logGetInfo];
}
Returns
| Parameter | Notes |
|---|---|
Boolean | This method always returns YES |
Reset logs
logReset
Clears the logging information stored so far.
Code example
//logReset
//Clears the logging information stored so far
-(void)clearLogs
{
[heftClient logReset];
}
Returns
| Parameter | Notes |
|---|---|
Boolean | This method always returns YES |
Enable scanner
enableScanner
Places the card reader in a scan mode. Only if the card reader supports it. To cancel/stop scan mode call the cancel method of the heft client.
Parameters
| Parameter | Notes |
|---|---|
multiScan Boolean | Yes [default] to activate multiScan mode - No to activate singleScan mode. Multi-scan mode allows the user to scan until scan operation is canceled or timeout occurs, single-scan mode is active until one scan has occurred then it disables the scan mode. |
buttonMode Boolean | Yes [default] if buttonMode is on - No otherwise. If button mode is on then the operator needs to press the scan buttons to activate the scanner(during scan mode). |
timeoutSeconds NSInteger | 0 [default] - card reader will determine when scanning should time out. x - the scanner will time out if x seconds of inactivity occur. |
Code example
//enableScanner:multiScan:buttonMode:timeoutSeconds
//Places the card reader in a scan only mode.
//To cancel/stop scan mode call cancel function.
-(IBAction)startScan
{
[heftClient enableScanner];
}
-(IBAction)startMultiScan
{
[heftClient enableScannerWithMultiScan:YES];
}
Events invoked
Called to inform that a scan has been performed, several calls can be expected. Several calls to this method happen after a scan action has been performed to inform about scan information operation. The info object contains scanCode, status and a dictionary (xml).
Disable scanner
disableScanner
Disables the scanner if possible
Code example
//disableScanner
//Disable the scanner
-(IBAction)disableScanner
{
[heftClient disableScanner];
}
Events invoked
Called to inform that a scan has been performed, several calls can be expected. Several calls to this method happen after a scan action has been performed to inform about scan information operation. The info object contains scanCode, status and a dictionary (xml).
financeInit
financeInit
The update operation checks for update to the card reader and initiates an update if needed. The update can either be a software update or a configuration update.
Code example
//financeInit
//Initializes the card reader and updates config.
-(IBAction)updateCardReader
{
[heftClient financeInit];
}
Events invoked
Invoked while during transaction with different statuses from card reader
Invoked to inform when an error response happens.
Invoked when the card reader finishes processing the transaction
Returns
| Parameter | Notes |
|---|---|
Boolean | This method always returns YES |
Get SDK version
getSDKVersion
Returns the current SDK version number in string format
Code example
//getSDKVersion
//Log SDK version number
NSLOG(@"SDK version: %@", [heftManager getSDKVersion];
Get SDK build number
getSDKBuildNumber
Returns the current SDK build number in string format
Code example
//getSDKBuildNumber
//Log SDK build number
NSLOG(@"SDK build: %@", [heftManager getSDKBuildNumber];